02-IAM-역할과정책심화

IAM 역할과정책심화

목표

IAM 역할(Role)과 정책(Policy)의 고급 기능을 학습하고, 실제 운영환경에서 사용되는 보안 패턴을 구현해봅시다.

IAM 역할 vs 사용자

사용자(User) vs 역할(Role) 비교

IAM 사용자:

IAM 역할:

역할 사용이 권장되는 경우

EC2 인스턴스:

❌ 잘못된 방법: Access Key를 인스턴스에 저장
✅ 올바른 방법: EC2에 IAM 역할 연결

서비스 간 통신:

❌ 잘못된 방법: Lambda에 하드코딩된 자격증명
✅ 올바른 방법: Lambda 실행 역할 사용

현재 실습 환경의 IAM 역할 분석

EC2 인스턴스 역할 확인

현재 EC2 인스턴스 역할 상태:

  1. EC2 콘솔인스턴스 선택
  2. 보안 탭에서 IAM 역할 확인
  3. 대부분 역할이 없거나 기본 역할 사용

문제점:

실습: EC2 인스턴스용 IAM 역할 생성

1단계: CloudWatch 에이전트용 역할 생성

역할 생성:

  1. IAM역할역할 생성
  2. 신뢰할 수 있는 엔터티 유형: AWS 서비스
  3. 사용 사례: EC2
  4. 다음 클릭

정책 연결:

  1. CloudWatchAgentServerPolicy 검색 및 선택
  2. AmazonSSMManagedInstanceCore 추가 선택
  3. 다음 클릭

역할 세부정보:

2단계: WAS 서버에 역할 연결

기존 WAS 서버에 역할 적용:

  1. EC2인스턴스 → WAS 서버 선택
  2. 작업보안IAM 역할 수정
  3. IAM 역할: WebApp-EC2-CloudWatch-Role 선택
  4. IAM 역할 업데이트

적용 확인:

# WAS 서버에서 확인
ssh -i webapp-keypair.pem ec2-user@Web서버-Public-IP
ssh ec2-user@WAS서버-Private-IP

# 역할 자격 증명 확인
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/

3단계: Launch Template 업데이트

새 버전 생성:

  1. EC2시작 템플릿webapp-web-template
  2. 작업템플릿 수정 (새 버전 생성)
  3. 고급 세부 정보IAM 인스턴스 프로파일
  4. WebApp-EC2-CloudWatch-Role 선택
  5. 템플릿 버전 생성

Auto Scaling Group 업데이트:

  1. Auto Scaling 그룹webapp-web-asg
  2. 편집시작 템플릿최신 버전 선택
  3. 업데이트

정책 고급 기능

조건부 정책 (Conditional Policies)

시간 기반 접근 제어:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*",
            "Condition": {
                "DateGreaterThan": {
                    "aws:CurrentTime": "09:00Z"
                },
                "DateLessThan": {
                    "aws:CurrentTime": "18:00Z"
                },
                "ForAllValues:StringEquals": {
                    "aws:RequestedRegion": "ap-northeast-2"
                }
            }
        }
    ]
}

IP 주소 기반 접근 제어:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "203.0.113.0/24",
                        "198.51.100.0/24"
                    ]
                }
            }
        }
    ]
}

리소스 기반 정책

S3 버킷 정책 예시:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::ACCOUNT-ID:role/WebApp-EC2-CloudWatch-Role"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::webapp-assets/*",
            "Condition": {
                "StringEquals": {
                    "s3:ExistingObjectTag/Environment": "prod"
                }
            }
        }
    ]
}

권한 경계 (Permission Boundaries)

권한 경계의 개념

권한 경계란:

실습: 개발자 권한 경계 설정

권한 경계 정책 생성:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:*",
                "rds:Describe*",
                "cloudwatch:*",
                "logs:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "iam:*",
                "organizations:*",
                "billing:*"
            ],
            "Resource": "*"
        }
    ]
}

권한 경계 적용:

  1. IAM정책정책 생성
  2. 위 JSON으로 Developer-Permission-Boundary 생성
  3. 사용자권한 경계 설정 → 정책 선택

모니터링 및 감사

CloudTrail을 통한 역할 사용 추적

주요 이벤트:

AssumeRole: 역할 사용 시작
AssumeRoleWithWebIdentity: 웹 자격 증명으로 역할 사용
GetSessionToken: 임시 토큰 발급

권한 사용 분석

IAM Access Analyzer 활용:

  1. IAMAccess Analyzer
  2. 액세스 미리 보기 → 정책 시뮬레이션
  3. 미사용 권한 분석 → 불필요한 권한 식별

완료 체크리스트

IAM 역할 구현

고급 정책 기능

모니터링 및 보안

운영 프로세스

보안 모범 사례 요약

역할 설계 원칙

  1. 최소 권한: 필요한 최소한의 권한만 부여
  2. 임시 자격 증명: 가능한 한 역할 사용
  3. 정기 검토: 분기별 권한 사용 패턴 분석
  4. 모니터링: 모든 권한 변경 추적

정책 작성 가이드라인

  1. 명시적 Deny: 중요한 작업은 명시적으로 차단
  2. 조건 활용: 시간, 위치, MFA 등 조건 적극 활용
  3. 리소스 특정: 가능한 한 특정 리소스 ARN 사용
  4. 테스트: 프로덕션 적용 전 충분한 테스트

IAM 역할과정책심화 완료

축하합니다! IAM의 고급 기능을 학습하고 실제 보안 강화를 위한 역할 기반 권한 관리 체계를 구축했습니다. 이제 엔터프라이즈급 보안 수준의 권한 관리가 가능합니다.

Week 4 전체 과정이 완료되었습니다! 모니터링, 비용 최적화, IAM 보안 강화를 통해 실제 운영 가능한 수준의 클라우드 인프라를 완성했습니다.


관련 문서: AWS EDU/Archive/조선대학교 AWS 멘토링/Week4-Operations-and-Optimization/03-IAM-정책심화/01-최소권한원칙, AWS EDU/Archive/조선대학교 AWS 멘토링/Week4-Operations-and-Optimization/README